$(function () {
  // 获取文章分类
  initCateList()



  // 获取文章分类函数
  function initCateList() {
    axios.get('/my/cate/list').then(({ data: res }) => {
      let rows = []
      res.data.forEach((item, index) => {
        rows.push(`
          <tr>
            <td>${index + 1}</td>
            <td>${item.cate_name}</td>
            <td>${item.cate_alias}</td>
            <td>
              <button type="button" class="layui-btn layui-btn-xs btn-edit" data-id="${item.id}">修改</button>
              <button type="button" class="layui-btn layui-btn-danger layui-btn-xs btn-delete" data-id="${item.id}">删除</button>
            </td>
          </tr>
        `)
      })
      $('tbody').html(rows)
    })
  }

  // 添加文章分类弹层
  let addIndex = null
  $('#btnShowAdd').on('click', function () {
    addIndex = layer.open({
      type: 1,
      title: '添加文章分类',
      area: ['500px', '250px'],
      content: $('#template-add').html()
    });
  })

  // 定义校验规则
  layui.form.verify({
    name: [/^\S{1,10}$/, '分类名称必须是1-10的非空字符串'],
    alias: [/^[a-zA-Z0-9]{1,15}$/, '分类别名必须是1-15位的字母和数字']
  })

  // 添加文章分类
  $('body').on('submit', '#form-add', function (e) {
    e.preventDefault()
    axios.post('/my/cate/add', $(this).serialize()).then(({ data: res }) => {
      if (res.code == 0) {
        // 关闭弹出层
        layer.close(addIndex)
        initCateList()
        layer.msg('添加文章成功')
      }
    })
  })

  // 删除文章分类
  $('tbody').on('click', '.btn-delete', function () {
    let id = $(this).attr('data-id')
    if (id <= 2) return layer.msg('管理员不允许删除前两条数据')
    layer.confirm('确定退出登录吗?', { icon: 3, title: '提示' }, function (index) {
      axios.delete('/my/cate/del', { params: { id } }).then(({ data: res }) => {
        if (res.code == 0) {
          layer.msg('文章分类删除成功')
          initCateList()
        }
      })
      // 关闭遮罩层
      layer.close(index);
    });

  })

  // 修改文章分类弹层
  let editIndex = null
  $('tbody').on('click', '.btn-edit', function () {
    let id = $(this).attr('data-id')
    if (id <= 2) return layer.msg('管理员不允许修改前两条数据')
    editIndex = layer.open({
      type: 1,
      title: '修改文章分类',
      area: ['500px', '250px'],
      content: $('#template-edit').html()
    })
    // 回显数据
    axios.get('/my/cate/info', { params: { id } }).then(({ data: res }) => {
      if (res.code == 0) {
        layui.form.val('form-edit', res.data)
      }
    })
  })
  // 修改文章分类
  $('body').on('submit', '#form-edit', function (e) {
    e.preventDefault()
    axios.put('/my/cate/info', $(this).serialize()).then(({ data: res }) => {
      if (res.code == 0) {
        layer.close(editIndex)
        initCateList()
        layer.msg('修改成功')
      }
    })
  })
})